package com.xzmzhp.service.maintain.impl;

import com.xzmzhp.dao.maintain.BreakageMapper;
import com.xzmzhp.pojo.maintain.Breakage;
import com.xzmzhp.service.maintain.BreakageService;
import com.xzmzhp.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @author: 王源(xm)
 * @create: 2022-04-24 16:49
 * @program: ams
 * @description: 破损相关逻辑实现类
 */
@Service
public class BreakageServiceImpl implements BreakageService {

    @Autowired
    private BreakageMapper breakageMapper;

    /**
     * 查询破损信息
     * @param breakageId 破损Id
     * @return 破损信息
     */
    @Override
    public Breakage findBreakage(Integer breakageId) {
        if (StringUtils.isNotNull(breakageId)){
            return breakageMapper.selectById(breakageId);
        }
        return null;
    }

    /**
     * 根据参数查询数据sql
     * @param param 参数
     *        itemId 物品id
     *        itemName 物品名称
     *        stdmodeId  物品类型id
     *        breakageType 破损状态
     *        startTime 开始时间
     *        endTime  结束时间
     * @return 查询数据sql
     */
    @Override
    public List<Breakage> findBreakageList(Map<String, Object> param) {
        if (StringUtils.isNotNull(param)){
            return breakageMapper.findBreakageByParam(param);
        }
        return null;
    }

    /**
     * 添加破损信息
     *
     * @param breakage 破损型信息
     * @return 影响行数
     */
    @Override
    public Integer addBreakage(Breakage breakage) {
        if (StringUtils.isNotNull(breakage)){
            return breakageMapper.insert(breakage);
        }
        return null;
    }

    /**
     * 修改破损信息
     *
     * @param breakage 破损
     * @return 影响条数
     */
    @Override
    public Integer updateBreakage(Breakage breakage) {
        if (StringUtils.isNotNull(breakage)){
            return breakageMapper.updateById(breakage);
        }
        return null;
    }

    /**
     * 根据破损id修改破损状态
     * @param breakageId 破损id
     * @param status 破损状态
     * @return 是否成功
     */
    @Override
    public Integer exitStatus(Integer breakageId, String status) {
        if (StringUtils.isNotNull(breakageId) && StringUtils.isNotEmpty(status)){
            return breakageMapper.exitStatus(breakageId,status);
        }
        return null;
    }
}
